#ifndef SPLIT_FBX_BY_MATERIAL_WITH_HIERARCHY_H
#define SPLIT_FBX_BY_MATERIAL_WITH_HIERARCHY_H
#include <map>
#include <set>
#include "SplitFbx.h"
using namespace std;
namespace fbxTool {
	class SplitFbxByMaterialWithHierarchy :public SplitFbx {
	protected:
		vector<string> Split(const string& inputPath, const string& outputPath, int numParts) override;

		void GetNodePath(FbxNode* node, vector<int>& path);

		FbxNode* FindNodeByPath(FbxNode* rootNode, const vector<int>& indexPath);

		void RemoveNode(FbxNode* node, FbxScene* scene);

		void RemoveEmptyNode(FbxNode* node, FbxScene* scene);

		void RemoveDescendants(FbxNode* node, FbxScene* scene);
	};
}
#endif // !SPLIT_FBX_BY_MATERIAL_WITH_HIERARCHY_H